perm filename WRITER.SAI[4,KMC] blob sn#180026 filedate 1975-10-04 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN
C00003 00003	PROC WRITE
C00006 00004	BREAK_LINE
C00007 ENDMK
C⊗;
BEGIN

REQUIRE "IODEFS.SAI[SEC,RCP]" SOURCE_FILE;

STRING PERIOD;

α 1 = Kid's name
  2 = Parent's name
  3 = Street address
  4 = Telephone number
  5 = Home room teacher
  6 = Grade
  7-B = Problems or good areas
  C = Specification of OTHER;
PROC WRITE;
	BEGIN "Write"
	BOOLEAN GRADED;
	STRING KIDLIST;
	INTEGER PICK, AT;
	GRADED ← GET_A_STRING("Should I read their grades [Y,N]") = "Y";
	KIDLIST ← GET_A_STRING("Which kids [highest grade, numbers]");
	FILIN("PERIOD." & PERIOD, INCH1);
	IF GRADED THEN FILIN("GRADES." & PERIOD, INCH2);
	FILOUT("BLANKS." & PERIOD, OUCH1);
	AT ← 1;
	PICK ← IF KIDLIST ≥ "A" THEN 0 ELSE INTSCAN(KIDLIST, BRK);
DO	BEGIN "Kid"
	STRING KID, PARENT, ADDRESS, PHONE, TEACHER, GRADE, TEMP;
	KID ← IN_LINE;
	TEMP ← SCAN(KID, 8, BRK);
	KID ← KID[2 TO ∞] ∂ TEMP;
	PARENT ← IN_LINE;
	ADDRESS ← IN_LINE;
	TEACHER ← IN_LINE;
	PHONE ← SCAN(TEACHER, 3, BRK);
	TEMP ← IN_LINE;
	IF GRADED THEN
		BEGIN
		GRADE ← INPUT(INCH2, 1);
		GRADE ← GRADE[28 FOR 2];
		END
	ELSE IF KIDLIST ≥ "A" THEN GRADE ← GET_A_STRING("Grade for" ∂ KID)
	ELSE GRADE ← NULL;
IF (KIDLIST ≥ "A") AND (GRADE ≥ KIDLIST) OR (PICK = AT) THEN
	BEGIN "Process"
	STRING ARRAY UGH[1:5];
	STRING PROBLEMS, PROBS;
	OUT_LINE(KID);
	OUT_LINE(PARENT);
	OUT_LINE(ADDRESS);
	OUT_LINE(PHONE);
	OUT_LINE(TEACHER);
	IF GRADE THEN OUTSTR(KID ∂ "got a" ∂ GRADE ↓)
	ELSE GRADE ← GET_A_STRING("Grade for" ∂ KID);
	OUT_LINE(GRADE);
	PROBS ← GET_A_STRING("Areas [Eff Att HW Test Other]");
	FOR I ← 1 TIL 5 DO UGH[I] ← "___";
	WHILE (TEMP ← SCAN(PROBS, 2, BRK)) DO
	UGH[	IF EQU(TEMP, "E" ) THEN 1 ELSE
		IF EQU(TEMP, "A" ) THEN 2 ELSE
		IF EQU(TEMP, "H" ) THEN 3 ELSE
		IF EQU(TEMP, "T" ) THEN 4 ELSE 5] ← "XXX";
	IF UGH[5] = "X" THEN PROBLEMS ← GET_A_STRING("Other =")
	ELSE PROBLEMS ← "____________________________";
	FOR I ← 1 TIL 5 DO OUT_LINE(UGH[I]);
	OUT_LINE(PROBLEMS);
	OUT_LINE(NULL);
	IF PICK > 0 THEN PICK ← INTSCAN(KIDLIST, BRK);
	END "Process";
	AT ← AT + 1;
	END "Kid"
UNTIL EOF;
	RELEASE(INCH1);
	IF GRADED THEN RELEASE(INCH2);
	RELEASE(OUCH1);
	END "Write";
BREAK_LINE;
BREAK_BLANK;
BREAK_TAB;
BREAK_COMMA;

WHILE (PERIOD ← GET_A_STRING("Which period # [<CR> for none]")) DO WRITE;

END